package com.hspedu.draw;

import javax.swing.*;
import java.awt.*;

/**
 * @author DL5O
 * @version 1.0
 * 演示如何在表面上画出圆
 */
public class DrawCircle extends JFrame{//JFrame对应窗口，可以理解为是一个画框

    //定义一个面板
    private MyPanel mp = null;
    public static void main(String[] args) {
        new DrawCircle();
    }

    public DrawCircle(){//构造器
        //初始化这个面板
        mp = new MyPanel();
        //把我们的面板放入到画框(窗口)
        this.add(mp);
        //设置窗口大小
        this.setSize(400,300);
        //当点击窗口的 x 时，这个程序就真正退出
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);  //可以显示
    }

}

//1.先定义一个面板，继承JPanel类，画图形，就在这个面板上画
class MyPanel  extends JPanel{

    //说明：
    //1. MyPanel 对象就是一个画板
    //2. Graphics g 可以理解成是一支画笔
    //Graphics 提供了很多画图 的方法
    //Graphics g
    @Override
    public void paint(Graphics g) {//绘图方法
        super.paint(g);//调用父类的方法完成初始化..
        System.out.println("paint方法被调用了");

        //画一个椭圆
        //g.drawOval(10,10,200,200);

        //演示绘制不同的图形
        //画直线
        //g.drawLine(10,10,10,100);

        //画矩形边框
        //g.drawRect(10,10,100,100);

        //画出填充矩形
        //g.setColor(Color.CYAN);
        //g.fillRect(10,10,100,100);

        //画出填充圆形
        //g.setColor(Color.orange);
        //g.fillOval(10,10,100,100);

        //画图片 drawImage
        //1.获取图片资源
        //Image image = Toolkit.getDefaultToolkit().getImage(MyPanel.class.getResource("/bg.png"));
        //这个路径 /bg.png 表示在根目录去获取bg.png
        //this 代表在当前位置上画
        //g.drawImage(image,10,10,175,221,this);

        //画字符串 drawString
        //1.给画笔设置颜色
        //2.设置字体
        g.setColor(Color.red);
        g.setFont(new Font("微软雅黑",Font.BOLD,50));
        g.drawString("北京你好",100,100);
    }
}
